package com.hospital.service;

import com.hospital.entity.FollowUpGroup;
import com.hospital.entity.Level;
import com.hospital.entity.ResponsibleDepartment;
import com.hospital.entity.ResponsibleHospital;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public interface FollowUpGroupService {
    /**
     * 添加随访组方法
     *
     * @param followUpGroup 随访组对象
     */
    public Integer Insert(FollowUpGroup followUpGroup);

    /**
     * 批量删除方法
     *
     * @param id 批量删除id
     * @return 删除状态
     */
    public int bulkDelete(List<Integer> id);

    /**
     * 修改方法
     *
     * @param followUpGroup 实体类对象
     * @return 修改状态
     */
    public Integer Update(FollowUpGroup followUpGroup);

    /**
     * 根据FollowUpGroup 主键查询
     *
     * @param id FollowUpGroup primary key
     * @return FollowUpGroup实体类对象
     */
    public FollowUpGroup SelectByFollowUpGroupId(Integer id);

    /**
     * 查询所有随访组
     *
     * @return 集合中的FollowUpGroup实体类对象
     */
    public List<FollowUpGroup> selectAll(Integer page, Integer pageNum);

    /**
     * 分页模糊查询
     *
     * @param followUpGroup FollowUpGroup实体类对象
     * @param page          当前页数
     * @param pageNum       每页显示页数
     * @return 集合中的FollowUpGroup实体类对象
     */
    public List<FollowUpGroup> SelectLikeCondition(FollowUpGroup followUpGroup, Integer page, Integer pageNum);

    /**
     * 模糊查询条数
     *
     * @param followUpGroup FollowUpGroup实体类对象
     * @return 条数
     */
    public Integer SelectLikeConditionCount(FollowUpGroup followUpGroup);

    /**
     * 查所有随访组条数
     *
     * @return 所有随访组条数
     */
    public Integer selectAllCount();

    /**
     * 查询责任医院
     *
     * @return 集合中的ResponsibleHospital实体类对象
     */
    public List<ResponsibleHospital> SelectByResponsibleHospital();

    /**
     * 查询责任科室
     *
     * @return 集合中的ResponsibleDepartment实体类对象
     */
    public List<ResponsibleDepartment> SelectByResponsibleDepartment();

    /**
     * 查询所有级别
     *
     * @return 集合中的Level实体类对象
     */
    public List<Level> SelectByLevel();


}
